package cn.itcast.web.controller.company;

import cn.itcast.domain.company.Company;
import cn.itcast.service.company.CompanyService;
import cn.itcast.web.controller.BaseController;
import com.alibaba.dubbo.config.annotation.Reference;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
@RequestMapping("/company")
public class CompanyController extends BaseController {
    @Reference
    private CompanyService companyService;


    @RequestMapping("/list")
    public String findAll(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "5") Integer pageSize){
        /*Subject subject = SecurityUtils.getSubject();
        subject.checkPermission("企业管理");*/

        PageInfo<Company> pageInfo = companyService.findByPage(pageNum,pageSize);
        request.setAttribute("pageInfo",pageInfo);
        return "/company/company-list";
    }

    /*
      url:/company/toAdd.do
      作用： 进入添加页面
      参数： 无
     */
    @RequestMapping("/toAdd")
    public String toAdd(){
        return "/company/company-add";
    }

    /*
          url:/company/edit.do
          作用： 保存、修改 企业信息
          参数： company
         */
    @RequestMapping("/edit")
    public String edit(Company company){
        if (StringUtils.isEmpty(company.getId())){
            //如果id为空，添加企业信息
            companyService.save(company);
        }else {
            //页面有传id，修改企业信息
            companyService.update(company);
        }
        return "redirect:/company/list.do";
    }

    /*
      url:/company/toUpdate.do?id=02e1da04-43f8-42e1-a4c2-66e162c6f4a5
      作用： 进入编辑页面,数据回显，通过id查找企业信息
      参数： id
     */
    @RequestMapping("/toUpdate")
    public String toAdd(String id){
        Company company = companyService.findById(id);
        request.setAttribute("company",company);
        return "/company/company-update";
    }

    /*
      url:/company/delete.do?id=02e1da04-43f8-42e1-a4c2-66e162c6f4a5
      作用： 删除选择的企业，返回企业列表页面
      参数： id
     */
    @RequestMapping("/delete")
    public String delete(String id){
        companyService.delete(id);
        return "redirect:/company/list.do";
    }
}
